OpsWorksの各LinuxOSにおけるAWS Systems Manager Agentのインストール有無を確認してみた
こんにちは、コカコーラ大好きカジです。
OpsWorksの各LinuxプラットフォームOSにおけるAWS Systems Manager Agent(SSM Agent)のインストール有無を確認してみました。
現時点で、OSによって違いがありましたので、ご紹介します。今後、変更になる可能性がありますので、現時点での情報とお考えください。
検証結果
私が調査した結果から記載します。(2020/6/10現在)
Opsworks OS指定 | SSM Agentインストール有無 | 調査時にOpsWorksで起動したEC2のAMI ID |
---|---|---|
Amazon Linux 2 | インストール済み | amzn2-ami-hvm-2.0.20180810-x86_64-gp2 (ami-6cd6f714) |
Ubuntu 18.04 LTS | インストール済み | ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-20190617 (ami-04aac3d7ea7609469) |
CentOS 7 | 未インストール | CentOS Linux 7 x86_64 HVM EBS ENA 1804_2-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-55a2322a.4 (ami-5490ed2c) |
確認手順
OpsWorksの構築
OpsWorksのSample Stackを作成します。
インスタンスで、nodejs-server1が起動し、OSはAmazon Linux2で起動します。
OpsWorks上で「+ Instance」でインスタンス追加時にOSを変更して試してみました。 nodejs-server2がUbuntu18.04 LTSを指定し追加、nodejs-server3でCentOS7で指定して追加で起動しました。 追加インスタンスについては、SSHログインし確認する場合は事前に作成したEC2キーペアを指定するとSSHログインできます。(各OSでSSHログインユーザ名が違うので気をつけましょう)
起動したあと、それぞれのインスタンスのPublic IPへブラウザアクセスすると以下の画面が表示されて、OpsWorksでデプロイされたアプリケーションが正常に起動していることが確認できます。
Systems Manager実行するためEC2 IAM Roleの変更
Sample Stackですと、EC2 IAM Roleは、「aws-opsworks-ec2-role」で起動します。 デフォルトでは権限が何も付与されておらず、Systems Managerが利用できないため、Systems Managerの実行できるよう「AmazonEC2RoleforSSM」を付与します。
Systems Managerの実行可否確認
Sysmtems Managerへ移動して、Run commandで「uname -a」を確認しようと実行します。
nodejs-server1(Amazon Linux2)とnodejs-server2(Ubuntu18.04LTS)は表示されますが、nodejs-server3(CentOS7)はSystems ManagerのRun commandを指定できません。
そのままRun commandを実行すると、表示されたインスタンスは成功します。
CentOS7でSSHログインして確認
CentOS7はOpsWorksのAgentがインストールされていないことを確認しました。
[centos@nodejs-server3 ~]$ rpm -qa | grep ops opsworks-agent-ruby-2.2.3-1.x86_64 [centos@nodejs-server3 ~]$ rpm -qa | grep ssm [centos@nodejs-server3 ~]$
Ubuntu18.04 LTSにSSHログインして確認
Ubuntu18.04 LTSはOpsWorksのAgent、SSM Agentがインストールされていました。
ubuntu@nodejs-server2:~$ dpkg-query -l | grep opsworks ii opsworks-agent-ruby 2.2.3-1 amd64 Ruby runtime with updated gems for the AWS OpsWorks instance agent. ubuntu@nodejs-server2:~$ snap list | grep ssm amazon-ssm-agent 2.3.612.0 1335 stable/… aws* classic
まとめ
現時点で、OpsWorksで利用するLinux OSによりSystems Managerのすぐ利用可否について違いがありましたので、どなたかのお役に立てれば光栄です。 CentOS7のOpsWorksで、Systems Managerを利用したい場合は、レシピでSystems ManagerのAgentをインストールすれば良いと推測しています。
CentOS インスタンスに SSM エージェント を手動でインストールする - AWS Systems Manager